#include "string_utils.h"
#include <cassert>

/* *
 * @brief ：输出无符号整数数组的内容
 *
 * @param vals ：输入的无符号整数数组。
 * @param size ：数组的大小。
 */
void StringUtils::Show(uint64_t *vals, long size)
{
    cout << "[";
    for (long i = 0; i < size; i++) {
        cout << vals[i] << ", ";
    }
    cout << "]" << endl;
}

/* *
 * @brief ：输出整数数组的内容
 *
 * @param vals ：输入的整数数组。
 * @param size ：数组的大小。
 */
void StringUtils::Show(long *vals, long size)
{
    cout << "[";
    for (long i = 0; i < size; i++) {
        cout << vals[i] << ", ";
    }
    cout << "]" << endl;
}

/* *
 * @brief ：比较两个无符号整数数组的每个元素是否相等
 *
 * @param vals1 ：第一个无符号整数数组。
 * @param vals2 ：第二个无符号整数数组。
 * @param size ：数组的大小。
 * @param prefix ：输出时用于标记的前缀字符串。
 *
 * @details ：如果两个数组的对应元素不相等，则触发断言失败。
 */
void StringUtils::ShowCompare(uint64_t *vals1, uint64_t *vals2, long size, string prefix)
{
    for (long i = 0; i < size; i++) {
        cout << "---------------------" << endl;
        cout << "m" + prefix + ": " << i << " :" << vals1[i] << endl;
        cout << "d" + prefix + ": " << i << " :" << vals2[i] << endl;
        cout << "e" + prefix + ": " << i << " :" << vals1[i] - vals2[i] << endl;
        cout << "---------------------" << endl;
        // assert(vals1[i] == vals2[i]);
    }
}